package com.neusoft.bizcore.schedule.dto;

import org.springframework.data.domain.Page;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class PageData {

    public static PageData convert(final Page<?> page) {
        final PageData pageData = new PageData();
        pageData.setFirst(page.isFirst());
        pageData.setLast(page.isLast());
        pageData.setNumber(page.getNumber());
        pageData.setTotalPages(page.getTotalPages());
        pageData.setNumberOfElements(page.getNumberOfElements());
        pageData.setSize(page.getSize());
        pageData.setTotalElements(page.getTotalElements());
        return pageData;
    }

    /**
     * 总条数
     */
    private long totalElements;
    /**
     * 查询结果条数
     */
    private int numberOfElements;
    /**
     * 总页数
     */
    private int totalPages;
    /**
     * 是否第一页
     */
    private boolean first;
    /**
     * 是否最后页
     */
    private boolean last;
    /**
     * 页大小
     */
    private int size;
    /**
     * 当前页码（从0开始）
     */
    private int number;

    public long getFromNumber() {
        if (this.numberOfElements == 0) {
            return this.number * this.size;
        } else {
            return (this.number * this.size) + 1;
        }
    }

    public long getToNumber() {
        return (this.number * this.size) + this.numberOfElements;
    }
}
